js函数对象

您所在的位置:网站首页 js function 内置方法 js函数对象

js函数对象

2023-04-07 14:07| 来源: 网络整理| 查看: 265

一、函数声明 声明的方式有函数的提升 //有变量提升 function fun(a,b){ console.log(a*b); } fun(5,6); //30 二、函数表达式(匿名函数) fun(5,6); var fun = function(a,b){ console.log(a + b); } //注:这样写会报下面这个错:

正确的写法:

var fun = function(a,b){ console.log(a + b); } fun(5,6); //11 三、对象的方式 //new 开辟的空间 Function是类型 //let 函数名 = new Function("参数列表,多个参数 用逗号隔开","代码段"); let fun = new Function("a","b","console.log(a+b)"); fun(5,6); //11 四、函数是功能完整的类 既然定义一个函数就是创建一个函数对象。那么只要执行函数定义的代码,就会创建新的函数对象 下面会议闭包,以闭包为例: function f1(){ var n = 250; function f2(){ n++; console.log(n); } return f2; } // 从这 以上,相对于 new 一个对象 var f21 = f1();//f21就是f2 f21();//调用f2; f21();//调用f2; var f22= f1();//f22就是f2 f22();//调用f2; f22();//调用f2;

虽然f21和f22的代码一样,但是,它们是两个不同的对象,即,每个的n值不一样。

所以函数等价于类? 函数名作为参数和返回值: 函数名能作为返回值,那么匿名函数也就可以作为返回值。

当我们知道函数是对象,函数名是对象名(变量名)时,函数名作为另外一个函数的参数和返回值就不难理解了。还记得当时讲数组的sort函数是,参数就是另外一个函数名。

五、函数的内置对象

自动产生,不需要用函数名来调用arguments 是是JavaScript里的一个内置对象。

arguments(他就是 一个数组)对象保存函数的所有参数, 虽然可以像数组一样的访问每个参数,但是,并不是标准的数组(没法使用push等函数);arguments对象不但保存着所有的参数,而且还有一个名叫callee的属性。Callee属性是个指针,指向了arguments对象所在的函数。 function fun(){ for(let i = 0; i // for(let i = 0; i < arguments.length;i++){ // console.log(arguments[i]); // } console.log(arguments.callee); } fun(1,3,5);

递归案例:

//10 的阶乘 function fun(n){ let c; if(n == 1){ //如果 n 等等于1的话,c就等于1 c = 1; }else{ c = n * fun(n - 1); //这块他就等价于 arguments.callee(n - 1); } return c; } console.log(fun(10)); //3628800 六、函数的属性和方法


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3